<?php
// +----------------------------------------------------------------------
// | LIKE [ JUST DO IT ]
// +----------------------------------------------------------------------
// | Author: Mr.hu <huhaiyang7788@163.com>
// +----------------------------------------------------------------------
// | DESC: 基于mysql存储的token及验证方式
// +----------------------------------------------------------------------


namespace api\implement\token;


use common\interfaces\Token;

class Mysql implements Token
{
    private $table_name;            //用户存储token表
    private $token_field_name;      //具体的token字段
    private $active_filed_name;     //记录token的到期时间

    /**
     * Mysql constructor.
     * @param $table_name 
     * @param $token_filed_name
     * @param $active_field_name
     */
    public function __construct($table_name,$token_filed_name,$active_field_name)
    {
        isset($table_name)&&$this->table_name=$table_name;
        isset($token_filed_name)&&$this->token_field_name=$token_filed_name;
        isset($active_field_name)&&$this->active_filed_name=$active_field_name;
    }

    /**
     * 生成对应的token
     * @param null $secret_key
     * return void
     * @ Mr.hu.
     */
    public function createToken($secret_key=null)
    {
        //生存token

        //保存token

        //返回token


    }

    /**
     * token验证
     * @param $token
     * return void
     * @ Mr.hu.
     */
    public function validateToken($token)
    {
        //从保存token的数据源中获取指定的token信息

        //进行验证有效性，其中包括时效性、绑定用户的唯一性等

        //返回布尔结果

    }


    /**
     * 退出登录时删除token
     * @param $token
     * return void
     * @ Mr.hu
     */
    public function delToken($token)
    {
        //删除token
    }

}